<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // 1. 封装 计算任意两个个位数之间所有数字，两两组合，能组合成哪些奇数，放在数组中，返回出来 函数
  //   ○ 1，3
  //   ○ 1，2，3
  //   ○ 11,12,13,21,22,23,31,32,33
  //   ○ xxx(1, 3);
  //   ○ [11, 13, 21, 23, 31, 33]
  function fn(m, n){
    if(m > n){
      var x = m;
      m = n;
      n = x;
    }
    var arr = [];
    for(var i=m; i<=n; i++){
      for(var j=m; j<=n; j++){
        if( (""+i+j) % 2 ){
          arr[arr.length] = (""+i+j);
        }
      }
    }
    return arr;
  }
  // console.log( fn(1, 3) );



  // 2. 封装 将数组内所有数据增加30%的 函数
  //   ○ [1, 2, 3, 4]
  //   ○ map(arr);
  //   ○ [1.3, 2.6, 3.9, 5.2]
  function map(myarr){
    // 遍历数组拿到所有数据
    for(var i=0;i<myarr.length;i++){
      // 将原数据增加30%（注意计算机对浮点数的精度问题）后，再设置回原数组
      myarr[i] = Number((myarr[i] * 1.3).toFixed(5));
    }
  }
  // var arr = [1, 2, 3, 4]
  // console.log(arr)
  // map( arr );
  // console.log(arr)


  // 3. 现有一个排好序的都是数值的数组，插入一个新数据，要求不影响原排序，封装函数实现
  //   ○ [1, 3, 4, 6, 9]
  //   ○ insert(arr, 5);
  //   ○ [1, 3, 4, 5, 6, 9]
  // 思路1：随便插入，重新排序
  // 思路2：遍历原数组，将原数组的数据和要插入的数据比较，找到第一个比要插入的数据大的数据位置，就是要插入的位置

  function insert(myarr, data){
    // 遍历原数组
    for(var i=0; i<myarr.length; i++){
      // 将原数组的数据和要插入的数据比较
      if(myarr[i] > data){
        // 找到第一个比要插入的数据大的数据位置
        break;
        // i就是要插入数据的位置
      }
    }
    // 从数组的最后一次向前，直到要插入数据的位置，都向后挪一位
    for(var j=myarr.length; j>i; j--){
      myarr[j] = myarr[j-1];
    }
    // 将数据直接设置到指定位置
    myarr[i] = data;
  }
  var arr = [1, 3, 4, 6, 9];
  console.log(arr)
  insert(arr, 7);
  console.log(arr)


  
</script>
</html>